HiSEN

Java实现Singleton最佳方法 - Enum

effective java:

1
单元素的枚举类型已经成为实现Singleton的最佳方法

理由:

  1. 因为枚举单例有序列化和线程安全的保证
  2. 避免反射和并发困扰

单例模式模式:完整代码+测试

主要代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class EnumSingleton {

private EnumSingleton() {
}

public static EnumSingleton getInstance() {
return Singleton.INSTANCE.getInstance();
}

private enum Singleton {
INSTANCE;
private EnumSingleton singleton;

Singleton() {
singleton = new EnumSingleton();
}

public EnumSingleton getInstance() {
return singleton;
}
}
}